home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / pcboard / msgtag11.zip / MEC.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-01-30  |  4KB  |  268 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     String   STRING001
  20.     String   STRING002
  21.     String   STRING003
  22.     String   STRING004
  23.     String   STRING005
  24.     String   STRING006
  25.     String   STRING007
  26.     String   STRING008
  27.     Int      INT001
  28.     Int      INT002
  29.     Int      INT003
  30.     BigStr   BIGSTR001
  31.     BigStr   BIGSTR002
  32.     BigStr   BIGSTR003
  33.  
  34. ;------------------------------------------------------------------------------
  35.  
  36.     STRING003 = ReadLine(PCBDat(), 204)
  37.     STRING003 = FileInf(STRING003, 6) + ":" + FileInf(STRING003, 7)
  38.     STRING001 = STRING003 + "msgtag.use"
  39.     STRING006 = STRING003 + "mtg" + String(CurConf()) + ".lst"
  40.     STRING005 = STRING003 + "userpl.dat"
  41.     If (Exist(STRING001)) Then
  42.         If (Exist(STRING005)) Then
  43.             GetUser
  44.             FOpen 7, STRING005, 0, 0
  45.             FGet 7, STRING003
  46.             U_PageLen = ToInt(STRING003)
  47.             PutUser
  48.             FClose 7
  49.             Delete STRING005
  50.         Endif
  51.     Endif
  52.     STRING003 = String(LoMsgNum()) + "-" + String(HiMsgNum())
  53.     If (FileInf(STRING006, 4) > 0) Then
  54.         STRING002 = "@X02[@X0FH@X02]elp,@X02(@X0F" + STRING003 + "@X02),@X02(@X0FTAG/DELTAG@X02), @X0EEnter your message command"
  55.         InputStr STRING002, BIGSTR001, 14, 250, Mask_Ascii(), 8 + 256 + 16
  56.         BIGSTR001 = Trim(BIGSTR001, " ")
  57.         If (BIGSTR001 == "") Then
  58.             KbdStuff Chr(13)
  59.             End
  60.             Goto LABEL002
  61.         Endif
  62.         If (BIGSTR001 == "TAG") Then
  63.             Gosub LABEL003
  64.             Tokenize BIGSTR001
  65.             INT002 = TokCount()
  66.             If (INT002 > 20) Then
  67.                 Gosub LABEL004
  68.                 STRING003 = ""
  69.                 STRING002 = "       @X0BChoose set number to read @X0E(Enter=quit)@X07"
  70.                 InputStr STRING002, STRING003, 14, 2, Mask_Num(), 256 + 4 + 2
  71.                 If (STRING003 <> "") Then
  72.                     Tokenize BIGSTR003
  73.                     For INT001 = 1 To INT003
  74.                         STRING004 = GetToken()
  75.                         If (INT001 == ToInt(STRING003)) Then
  76.                             STRING007 = Mid(STRING004, 1, InStr(STRING004, ",") - 1)
  77.                             STRING008 = Mid(STRING004, InStr(STRING004, ",") + 1, Len(STRING004) - InStr(STRING004, ","))
  78.                             BIGSTR001 = Mid(BIGSTR001, InStr(BIGSTR001, STRING007), InStr(BIGSTR001, STRING008) - InStr(BIGSTR001, STRING007) + Len(STRING008))
  79.                             Break
  80.                         Endif
  81.                     Next
  82.                     Goto LABEL001
  83.                 Endif
  84.                 BIGSTR001 = ""
  85.             Endif
  86.             :LABEL001
  87.             KbdStuff Chr(13) + "R;" + BIGSTR001 + Chr(13)
  88.             End
  89.             Goto LABEL002
  90.         Endif
  91.         If (BIGSTR001 == "DELTAG") Then
  92.             Delete STRING006
  93.             Newline
  94.             PrintLn "@X0AYour '@X0ETagged@X0A' Messsage Number list for this conference has been @X0Cdeleted.@X07"
  95.             Newline
  96.             Delay 36
  97.             KbdStuff Chr(13)
  98.             End
  99.             Goto LABEL002
  100.         Endif
  101.         KbdStuff BIGSTR001 + Chr(13)
  102.         End
  103.     Endif
  104.     :LABEL002
  105.     STRING002 = "(H)elp, (" + STRING003 + "), Enter your Message Command"
  106.     InputStr STRING002, BIGSTR001, 14, 80, Mask_Ascii(), 8 + 256 + 16
  107.     BIGSTR001 = Trim(BIGSTR001, " ")
  108.     If (Left(BIGSTR001, 1) == "Q") Then
  109.         FOpen 1, STRING001, 1, 0
  110.         FClose 1
  111.     Endif
  112.     KbdStuff BIGSTR001 + Chr(13)
  113.     End
  114.     :LABEL003
  115.     FOpen 1, STRING006, 0, 0
  116.     FRead 1, BIGSTR001, FileInf(STRING006, 4)
  117.     FClose 1
  118.     Return
  119.     :LABEL004
  120.     PrintLn 
  121.     PrintLn "@X0E┌──────────────────────────────────────────────────────────────┐"
  122.     PrintLn "│@X0BDue to a limitation of PCBoard, only 20 Message numbers can be@X0E│"
  123.     PrintLn "│@X0Bstacked to read at one time.  Pick the @X0DSET NUMBER@X0B of tagged   @X0E│"
  124.     PrintLn "│@X0Bmessages you wish to read.                                    @X0E│"
  125.     PrintLn "@X0E└──────────────────────────────────────────────────────────────┘"
  126.     PrintLn 
  127.     PrintLn "@X0FSet #  @X0CTagged Message Numbers@X07"
  128.     PrintLn "@X0A─────  ────────────────────────────────────────────────────────"
  129.     INT003 = 1
  130.     Print Space(3 - Len(String(INT003))), "@X0F", INT003, Space(4)
  131.     INT001 = 0
  132.     BIGSTR003 = ""
  133.     BIGSTR002 = BIGSTR001
  134.     Gosub LABEL005
  135.     Print "@X02", STRING003, " "
  136.     BIGSTR003 = STRING003 + ","
  137.     Inc INT001
  138.     While (1) Do
  139.         Select Case (INT001)
  140.             Case 20
  141.                 BIGSTR003 = BIGSTR003 + STRING003 + ";"
  142.                 INT001 = 0
  143.                 PrintLn 
  144.                 PrintLn 
  145.                 Gosub LABEL005
  146.                 If (STRING003 == "") Then
  147.                     BIGSTR003 = BIGSTR003 + STRING004 + ";"
  148.                     Break
  149.                 Endif
  150.                 Inc INT003
  151.                 Print Space(3 - Len(String(INT003))), "@X0F", INT003, Space(4)
  152.                 Print "@X02", STRING003, " "
  153.                 BIGSTR003 = BIGSTR003 + STRING003 + ","
  154.                 Inc INT001
  155.                 Continue
  156.             Case 10
  157.                 PrintLn 
  158.                 Print Space(7)
  159.         End Select
  160.         Gosub LABEL005
  161.         If (STRING003 == "") Then
  162.             BIGSTR003 = BIGSTR003 + STRING004 + ";"
  163.             Newlines 2
  164.             Break
  165.         Endif
  166.         Print "@X02", STRING003, " "
  167.         Inc INT001
  168.         STRING004 = STRING003
  169.     EndWhile
  170.     Return
  171.     :LABEL005
  172.     STRING003 = Mid(BIGSTR002, 1, InStr(BIGSTR002, ";") - 1)
  173.     BIGSTR002 = Mid(BIGSTR002, InStr(BIGSTR002, ";") + 1, Len(BIGSTR002) - InStr(BIGSTR002, ";"))
  174.     Return
  175.  
  176. ;------------------------------------------------------------------------------
  177. ;
  178. ; Usage report (before postprocessing)
  179. ;
  180. ; ■ Statements used :
  181. ;
  182. ;    5       End
  183. ;    27      Goto 
  184. ;    34      Let 
  185. ;    6       Print 
  186. ;    13      PrintLn 
  187. ;    16      If 
  188. ;    3       FOpen 
  189. ;    3       FClose 
  190. ;    1       FGet 
  191. ;    1       GetUser
  192. ;    1       PutUser
  193. ;    2       Delete 
  194. ;    3       InputStr 
  195. ;    5       Gosub 
  196. ;    3       Return
  197. ;    1       Delay 
  198. ;    4       Inc 
  199. ;    2       Newline
  200. ;    1       Newlines 
  201. ;    2       Tokenize 
  202. ;    5       KbdStuff 
  203. ;    1       FRead 
  204. ;
  205. ;
  206. ; ■ Functions used :
  207. ;
  208. ;    37      +
  209. ;    7       -
  210. ;    9       ==
  211. ;    1       <>
  212. ;    1       <
  213. ;    1       <=
  214. ;    2       >
  215. ;    2       >=
  216. ;    16      !
  217. ;    2       &&
  218. ;    1       ||
  219. ;    5       Len(
  220. ;    5       Mid()
  221. ;    1       Left()
  222. ;    5       Space()
  223. ;    6       Chr()
  224. ;    9       InStr()
  225. ;    2       Trim()
  226. ;    5       String()
  227. ;    1       Mask_Num()
  228. ;    2       Mask_Ascii()
  229. ;    1       CurConf()
  230. ;    1       PCBDat()
  231. ;    1       ReadLine()
  232. ;    1       GetToken()
  233. ;    2       Exist()
  234. ;    4       FileInf()
  235. ;    1       TokCount()
  236. ;    2       ToInt()
  237. ;    1       LoMsgNum()
  238. ;    1       HiMsgNum()
  239. ;
  240. ;------------------------------------------------------------------------------
  241. ;
  242. ; Analysis flags : Wd
  243. ;
  244. ; W - Write user ■ 5
  245. ;     Program writes a user record. Although this may be normal for a
  246. ;     User Editor, it may also be a way to modify an account level.
  247. ;     ■ Search for : PUTUSER
  248. ;
  249. ; d - Access PCBOARD.DAT ■ 2
  250. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  251. ;     for many PPE so they can find various informations on the system
  252. ;     (system paths, max number of lines in messages, ...) but it may also
  253. ;     be a way to gather vital informations.
  254. ;     ■ Search for : PCBDAT()
  255. ;
  256. ;------------------------------------------------------------------------------
  257. ;
  258. ; Postprocessing report
  259. ;
  260. ;    1       For/Next
  261. ;    1       While/EndWhile
  262. ;    12      If/Then or If/Then/Else
  263. ;    1       Select Case
  264. ;
  265. ;------------------------------------------------------------------------------
  266. ;                 AEGiS Corp - Break the routines, code against the machines!
  267. ;------------------------------------------------------------------------------
  268.